11.嵌入式系统常用调试方法有几种,各有什么优缺点?
答:
1.模拟器方式
调试工具和待调试的嵌入式软件都在主机上运行,通过软件手段模拟执行为某种嵌入式处理器编写的源程序。简单的模拟器可以通过指令解释方式逐条执行源程序,分配虚拟存储空间和外设,进行语法和逻辑上的调试。
2.在线仿真器方式
在线仿真器ICE是一种完全仿造调试目标CPU设计的仪器,目标系统对用户来说是完全透明的、可控的。由于仿真器自成体系,调试时可以连接目标板,也可以不接目标板。但是ICE价格昂贵,而且每种CPU都需要一种与之对应的ICE,使得开发成本非常高。
3.监控器方式
主机和目标板通过某种接口(通常是串口)连接,主机上提供调试界面,被调试程序下载到目标板上运行,通过与监控运行于目标机上的监控程序通信,获得调试信息。
12.什么是嵌入式操作系统?常见的嵌入式操作系统有哪些?(列举五个以上),嵌入式操作系统有什么特点?
答:
以应用为中心、以计算机技术为基础、软件硬件可裁剪、功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。”
嵌入式操作系统是一种支持嵌入式系统应用的操作系统软件,它是嵌入式系统的重要组成部分。嵌入时操作系统具有通用操作系统的基本特点,能够有效管理复杂的系统资源,并且把硬件虚拟化。Linux、uClinux、WinCE、PalmOS、Symbian、eCos、uCOS-II、VxWorks、pSOS、Nucleus、ThreadX 、Rtems 、QNX、INTEGRITY、OSE、C Executive
可裁剪;强实时性;统一的接口;操作方便、简单、提供友好的图形用户界面GUI;提供强大的网络功能;稳定性,弱交互性;固化代码;良好的移植性
13.什么是交叉开发环境?简述嵌入式linux系统交叉开发环境的构建过程?
答:简单的来说:在进行嵌入式开发之前,首先要建立一个交叉编译环境,这是一套编译器、连接器和libc库等组成的开发环境。交叉开发是指在一台通用计算机上进行软件的编辑编译,然后下载到嵌入式设备中进行运行调试的开发方式。
1). 下载源文件、补丁和建立编译的目录
2). 建立内核头文件
3). 建立二进制工具(binutils)
4). 建立初始编译器(bootstrap gcc)
5). 建立c库(glibc)
6). 建立全套编译器(full gcc)
14.什么是bootloader?常用的bootloader有那些?bootloader两种工作模式有什么不同,分别应用在那种情况下?
答:Bootloader是在操作系统运行之前执行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射表,从而建立适当的系统软硬件环境,为最终调用操作系统内核做好准备。Grub和Lilo是PC计算机上的,U-boot,vivi,blob,ARMBoot是嵌入式系统上的。
两种工作模式是:启动加载模式和下载模式,这种区别仅对于开发人员才有意义。从最终用户的角度看,BootLoader的作用就是用来加载操作系统,而并不存在所谓的启动加载模式与下载工作模式的区别。(1)启动加载(Boot loading)模式:这种模式也称为自主模式bootstrap。也即Boot Loader将存储在目标板Flash中的内核和文件系统的镜像装载到SDRAM中,整个过程无需用户的介入。这种模式是BootLoader的正常工作模式,因此在嵌入式产品发布的时候,BootLoader显然必须工作在这种模式下。(2)下载Downloading模式:在这种模式下,目标机上的BootLoader将通过串口连接或网络连接等通信手段从宿主机Host下载文件,比如下载内核映像和根文件系统映像等。从主机下载的文件通常首先被BootLoader保存到目标机的RAM中,然后再被BootLoader写到目标机上的FLASH类固态存储设备中。BootLoader的这种模式通常在第一次安装内核与根文件系统时被使用;此外,以后的系统更新(bootloader自身也可以这样更新)也会使用Boot Loader的这种工作模式。工作于这种模式下的BootLoader通常都会向它的终端用户提供一些简单的命令行接口。
Boot Loader 就是在操作系统内核运行之前运行的一段小程序。
常用的Bootloade有:U-Boot、VIVI、Blob、RedBoot、ARMboot
Bootloader可工作在两种模式下,启动加载模式和下载模式
启动加载(Boot loading)模式应用在嵌入式产品发布的时侯。
下载(Downloading)模式应用在第一次安装内核与根文件系统时被使用;以后的系统更新也会使用Boot Loader 的这种工作模式。
15.简述bootloader在嵌入式系统平台上的移植过程?
答:
1).准备Bootloader软件
2).根据目标板硬件平台,修改配置Bootloader。
3).交叉编译,形成目标板子可执行的Bootloader二进制BIN文件。
4).将Bootloader烧写进目标板。
5).配置好宿主机上的minicom或者超级终端。
6).启动目标板,若bootloader编译没有错误,烧写正确,就可以在超级终端中看到目标板启动的信息。
16.Bootloader和BSP有什么不同?
答:BSP是开发板支持软件包,一般BSP包含有bootloader. BSP的作用是支持操作系统,使之能够更好的运行于硬件平台;BootLoader就是在操作系统内核运行之前运行的一段小程序。
17.说明linux平台下用C语言软件开发方法?(说明需要用到那些工具)。
答:gcc + glibc + linux-header + make
18.什么是嵌入式软件?嵌入式软件有哪几种架构?嵌入式软件有什么特点?
答:嵌入式软件就是嵌入在硬件中的操作系统和开发工具软件,它在产业中的关联关系体现为:芯片设计制造→嵌入式系统软件→嵌入式电子设备开发、制造。冯诺依曼和哈佛体系 。
19.什么是SOC?
SoC(System on a Chip )中文名是系统级芯片.(片上系统);